package com.wande.dataplatform.domain.vo;

import cn.idev.excel.annotation.ExcelProperty;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 项目视图对象
 *
 * @author wande
 */
@Data
public class ProjectVO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 项目ID
     */
    @ExcelProperty(value = "项目ID")
    private Long id;

    /**
     * 租户ID
     */
    private Long tenantId;

    /**
     * 项目名称
     */
    @ExcelProperty(value = "项目名称")
    private String name;

    /**
     * 项目编码
     */
    @ExcelProperty(value = "项目编码")
    private String code;

    /**
     * 项目描述
     */
    @ExcelProperty(value = "项目描述")
    private String description;

    /**
     * 负责人ID
     */
    private Long ownerId;

    /**
     * 负责人姓名
     */
    @ExcelProperty(value = "负责人")
    private String ownerName;

    /**
     * 状态: 0-归档, 1-正常
     */
    @ExcelProperty(value = "状态")
    private Integer status;

    /**
     * 开始日期
     */
    @ExcelProperty(value = "开始日期")
    private LocalDate startDate;

    /**
     * 结束日期
     */
    @ExcelProperty(value = "结束日期")
    private LocalDate endDate;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 成员数量
     */
    private Integer memberCount;

    /**
     * 数据源数量
     */
    private Integer datasourceCount;

    /**
     * 数据模型数量
     */
    private Integer modelCount;

    /**
     * ETL任务数量
     */
    private Integer etlTaskCount;
}
